Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
@onflow/util-template
Advanced tools
Utility to help with string interop in SDK and FCL
import {templar} from "onflow/template"
const template = templar`
From: ${o => o.from}
To: ${o => o.to}
Message: ${o => o.msg}
`
const letter = template({
from: "Bob the Builder",
to: "Postman Pat",
msg: "Please pick up your black and white cat.",
})
// prettier-ignore
assert( letter, `
From: Bob the Builder
To: Postman Pat
Message: Please pick up your black and white cat.
`)
import {templar} from "@onflow/template"
const template1 = templar`
a: ${o => o.a}
b: ${o => o.b}
`
const template2 = templar`
x: ${o => o.x}
y: ${o => o.y}
`
const template3 = templar`
${template1}
${template2}
oh hello!
${template1}
${template2}
`
const rawr = template3({a: "A", b: "B", x: "X", y: "Y"})
// prettier-ignore
assert(rawr, `
a: A
b: B
x: X
y: Y
oh hello!
a: A
b: B
x: X
y: Y
`)
Role your own graphql libary
// gql.js
import {templar} from "@onflow/template"
export const gql = templar
export const gqlr = (...args) => (opts = {}) => {
const params = opts.params || {}
const headers = opts.headers || {}
const endpoint = opts.endpoint || ""
return fetch(endpoint, {
method: "POST",
headers: {
"Content-Type": "application/json",
...headers,
},
body: JSON.stringify({
query: gql(...args)(params),
}),
}).then(d => d.json())
}
// somewhere-else.js
import React, {useEffect, useState} from "react"
import {gqlr, gql} from "./gql"
const USER = gql`
fragment USER on User {
username
}
`
const query = gqlr`
query {
me { ...USER }
}
${USER}
`
export const Username = () => {
const [username, setUsername] = useState(null)
useEffect(() => {
query({
endpoint: "http://...",
headers: {authorization: "bearer ..."},
}).then(response => setUsername(response.data.me.username))
}, [])
return username == null ? null : username
}
Role your own pipeline thing?
const pipe = (fns = []) => token => {
return fns.reduce((token, fn) => fn(token), token)
}
const param = (key, value) => token => {
token.params = token.parms || {}
token.params[key] = value
return token
}
const script = (...args) => token => {
token.type = "script"
token.value = templar(...args)(token.params)
return token
}
const query = (...args) => token => {
token.type = "query"
token.value = templar(...args)(token.parms)
return token
}
const desc = (...args) => token => {
token.description = templar(...args)(token.params)
return token
}
const rawr = pipe([
param("msg", "woot woot im a boot"),
script`
pub fun main() {
log("msg: ${o => o.msg}")
}
`,
desc`
the message: ${o => o.msg}
`,
])
assert(rawr, {
params: {
msg: "woot woot im a boot",
},
type: "script",
code: `
pub fun main() {
log("msg: woot woot im a boot")
}
`,
descrition: `
the message: woot woot im a boot
`,
})
FAQs
Template Literal used for Cadence Interop
We found that @onflow/util-template demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 13 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.